1. Field of the Invention
The present invention relates generally to touch screen based telephony products, and more particularly to a touch screen based telephony product wherein new pages are automatically created in a hierarchical repertory of telephone numbers.
2. Related Art
Touch screen technology is being integrated into many types of electronic products. For example, touch screen technology is being integrated with some telephony products, such as a telephone having a touch screen for accepting user input.
A touch screen based telephone typically includes a hierarchical repertory of telephone numbers. These telephone numbers, which are stored in a memory located within the telephone, can be automatically dialed by pressing appropriate "buttons" on the telephone's touch screen display.
The telephone numbers in the repertory are hierarchically organized. FIG. 3 is an example three level hierarchical repertory 301 of telephone numbers. The hierarchical repertory 301 may be implemented using any well known and appropriate data structure, such as a linked list data structure. The hierarchical repertory 301 includes a plurality of nodes anchored by a root node. Each node may have one or more "child" nodes. For example, the "root" node has the following child nodes: "family", "friends", "police", "hospital", "work", "gym", and "doctor". These nodes are in a first level 302 from the root node of the hierarchical repertory 301.
Some of the nodes (called "parent nodes") in the first level 302 have child nodes, such as the "family" node which has the following child nodes in a second level 304 of the repertory 301: "George", "Dad", "Mom", "Dad", "Jim", "Susan", "Matt", "Jen", "Meagan", and "Calvin". Some of these nodes in the second level 304 have child nodes, such as a "work friends" node which has the following child nodes in a third level 306 of the repertory: "Suz" and "Fred".
Nodes in the hierarchical repertory 301 which do not have child nodes (called "non-parent nodes"; non-parent nodes include the "police" node in the first level 302 and the "Jen" node in the second level 304) correspond to telephone numbers. For example, the "police" node corresponds to the telephone number of the police, and the "Jen" node corresponds to Jen's telephone number. These telephone numbers are stored in a memory inside the telephone.
A user navigates through a touch screen based telephone's hierarchical repertory using a series of display pages that are displayed on the telephone's touch screen. Each of these display pages includes one or more "fast dial" buttons which map to the nodes in the hierarchical repertory. A user presses these fast dial buttons to automatically dial telephone numbers from the hierarchical repertory.
FIG. 1 is an example display page 102 that corresponds to the first level 302 of the hierarchical repertory 301 of FIG. 3. The display page 102 includes fast dial buttons 104.
The fast dial buttons in any particular display page correspond to all of the child nodes of a particular parent node in the hierarchical repertory. For example, the fast dial buttons 104 in the display page 102 correspond to all of the child nodes (in the first level 302) of the "root" node in the hierarchical repertory 301.
Each display page provided by the touch screen based telephone can accommodate only a predetermined number of fast dial buttons. For example, the display page 102 can each accommodate up to a maximum of nine fast dial buttons (this is also true of the display page 202 in FIG. 2, described below). This display page limitation also limits the structure of the hierarchical repertory. Specifically, the maximum number of child nodes that any particular parent node in the hierarchical repertory can have is equal to the maximum number of buttons that can be in any particular display page, and vice versa.
Each fast dial button 104 in the display page 102 of FIG. 1 is either a "telephone number" button 104C, 104D, 104F, 104G or a "menu" button 104A, 104B, 104E. A telephone number button 104C, 104D, 104F, 104G (also called herein "data button") is a button which corresponds to a non-parent node, that is, a node in the hierarchical repertory 301 that does not have any child nodes. In other words, a telephone number button 104C, 104D, 104F, 104G is a button which corresponds to a telephone number. When a user presses a telephone number button 104C, 104D, 104F, 104G, the telephone number associated with that button is automatically dialed. For example, the "police" button 104C corresponds to the "police" node shown in the first level 302 of the hierarchical repertory 301. When a user presses the "police" button 104C, the police telephone number associated with the "police" node is dialed.
A menu button 104A, 104B, 104E is a button which corresponds to a parent node, that is, a node in the hierarchical repertory 301 that has one or more child nodes. When a user presses a menu button 104A, 104B, 104E, a new display page of fast dial buttons corresponding to the child nodes associated with that menu button 104A, 104B, 104E is displayed. For example, when a user presses a "family" menu button 104A, the display page 202 shown in FIG. 2 is displayed over the original display page 102. This display page 202 includes telephone number buttons 204A-204I which correspond to the children nodes (shown in the second level 304 of the hierarchical repertory 301) of the "family" node in the first level 302 of the hierarchical repertory 301.
In some conventional touch screen based telephones, the organization of the hierarchical repertory is predetermined and cannot be modified by users. In particular, the number of levels in the hierarchical repertory, the number of nodes in each of the levels, the lineage between nodes, and the display pages are predetermined and cannot be modified by users. These conventional touch screen based telephones are flawed because they do not provide users with the ability to create customized hierarchical repertories suited to their individual needs.
In other, more flexible conventional touch screen based telephones, the organization of the hierarchical repertory is not predetermined and can be modified by users. For example, the touch screen based telephone associated with the display pages 102 and 202 of FIGS. 1 and 2, respectively, provides this capability. Access to this capability is provided in part via a "create new telephone number button" button 110 that is shown in display page 102 of FIG. 1.
A user pushes this button 110 to create and add a new telephone number button to the fast dial buttons 104 that already exist in the display page 102. In other words, a user pushes this "create new telephone number button" button 110 to create and add a new non-parent node (that does not have any children nodes) to the hierarchical repertory 301. The manner in which nodes are added to the hierarchical repertory 301 will be apparent to persons skilled in the relevant art.
This new node is in the same level (i.e., the first level 302) of the hierarchical repertory 301 and has the same parent node (i.e., the root node) as the other nodes (i.e., the "family", "friends", "police", "hospital", "work", "gym", and "doctor" nodes) that correspond to the buttons 104 in the display page 102.
The new telephone number button which is created when the user presses the "create new telephone number button" button 110 must be positioned in the display page 102. As noted above, the display pages 102, 202 in FIGS. 1 and 2 can each accommodate up to a maximum of nine fast dial buttons. In the display page 102 of FIG. 1, seven fast dial buttons 104 exist. Thus, there are two available positions 106, 108 for new fast dial buttons. Accordingly, the new telephone number button which is created when the user presses the "create new telephone number button" button 110 is positioned in either position 106 or position 108 of the display page 102.
The display page 202 in FIG. 2 also has a "create new telephone number button" button 210. This button 210 in FIG. 2 is just like the "create new telephone number button" button 110 in FIG. 1, except that the new non-parent node that is created when button 210 is pressed is in the same level (i.e., the second level 304) of the hierarchical repertory 301 and has the same parent node (i.e., the "family" node in the first level 302) as the other nodes (i.e., the "George", "Dad", "Mom", "Dad", "Jim", "Susan", "Matt", "Jen", "Meagan", and "Calvin" nodes) that correspond to the buttons 204 in the display page 202.
In the example of FIG. 2, the display page 202 includes nine fast dial buttons 204. Thus, the display page 202 is "full" since it has reached its capacity of fast dial buttons. Since it is full, the display page 202 does not have any available positions for additional fast dial buttons. Accordingly, the "create new telephone number button" button 210 cannot be used to create a new telephone number button in the display page 202.
Conventional touch screen based telephones do not directly address this problem. In particular, conventional touch screen based telephones have no facilities for automatically accommodating a user's request to add a new telephone number button to a full display page. Instead, users must manually solve this problem.
In particular, a first solution to this problem requires that the user navigate to a display page that is not full, and then add the new telephone number button to that display page. For example, a user operating in display page 202 (which is full) must navigate to display page 102 (which is not full), and then add the new telephone number button to this display page 102. Positioning the new menu button in this manner, however, may conflict with the user's desired organization of the hierarchical repertory. Thus, this first solution is flawed since it may result in creating a hierarchical repertory that is illogically structured and, thus, less useful to the user. This first solution is further flawed since it is laborious from a user's point of view.
A second solution to this problem requires that the user create a new display page (the telephone number button which the user wants to create would be positioned in this new display page). The creation of a new display page operates to expand the hierarchical repertory. More particularly, the creation of a new display page operates to create in the hierarchical repertory a new parent node. Child nodes (such as the telephone number button which the user wants to create) may subsequently be created and connected to the new parent node.
The user must typically manually perform the following operations to create a new display page. First, the user typically must navigate to a display page that offers a "Create New Page" option, create a new page using this option, navigate to the newly created page, then create and add the new telephone number button to this newly created page. Also, the user must create a new menu button for the new page, and must position the new menu button in a display page (it may be necessary for the user to do this before creating the new page).
However, it is not possible for the user to position this new menu button in a display page that is full (such as display page 202). Instead, the user must navigate to a display page that is not full (such as display page 102), and position the new menu button in that display page. Alternatively, the user can manually delete an existing fast dial button from a full display page, and then manually place the new menu button in the position previously occupied by the deleted button.
Positioning the new menu button in this manner, however, may conflict with the user's desired organization of the hierarchical repertory. Thus, this second solution, like the first solution, is flawed since it may result in creating a hierarchical repertory that is illogically structured and, thus, less useful to the user. This second solution is further flawed since it is laborious from a user's point of view.
Thus, what is required is a system and method for automatically accommodating a user request to add a new telephone number button to a full display page of a hierarchical repertory maintained by a touch screen based telephone. More particularly, what is required is a system and method for automatically creating a new display page and expanding the hierarchical repertory for the purpose of accommodating such a user request.